package com.ciaojian.miniapp.model.response.profitsharing;

import com.ciaojian.miniapp.model.response.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 分账接收方
 *
 * @author Atlakyn
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProfitsSharingReceiverResponse extends BaseResponse {
    /**
     * 分账金额
     * 分账金额，单位为分，只能为整数，不能超过原订单支付金额及最大分账比例金额
     */
    private int amount;

    /**
     * 分账描述
     * 分账的原因描述，分账账单中需要体现
     */
    private String description;

    /**
     * 接收方类型
     * 1、MERCHANT_ID：商户号
     * 2、PERSONAL_OPENID：个人openid（由父商户APPID转换得到）
     */
    private String type;

    /**
     * 接收方账号
     * 1、分账接收方类型为MERCHANT_ID时，分账接收方账号为商户号
     * 2、分账接收方类型为PERSONAL_OPENID时，分账接收方账号为个人openid
     */
    private Integer account;

    /**
     * 分账结果
     * 枚举值：
     * 1、PENDING：待分账
     * 2、SUCCESS：分账成功
     * 3、CLOSED：已关闭
     */
    private String result;

    /**
     * 分账失败原因
     * 分账失败原因。包含以下枚举值：
     * 1、ACCOUNT_ABNORMAL : 分账接收账户异常
     * 2、NO_RELATION : 分账关系已解除
     * 3、RECEIVER_HIGH_RISK : 高风险接收方
     * 4、RECEIVER_REAL_NAME_NOT_VERIFIED : 接收方未实名
     * 5、NO_AUTH : 分账权限已解除
     */
    private String fail_reason;

    /**
     * 分账创建时间
     * 分账创建时间，遵循rfc3339标准格式，格式为
     * YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，
     * YYYY-MM-DD表示年月日，
     * T出现在字符串中，表示time元素的开头，
     * HH:mm:ss.sss表示时分秒毫秒，
     * TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。
     * 例如：2015-05-20T13:29:35.120+08:00表示，北京时间2015年5月20日 13点29分35秒。
     */
    private String create_time;

    /**
     * 分账完成时间
     * 分账完成时间，遵循rfc3339标准格式，格式为
     * YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，
     * YYYY-MM-DD表示年月日，
     * T出现在字符串中，表示time元素的开头，
     * HH:mm:ss.sss表示时分秒毫秒，
     * TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。
     * 例如：2015-05-20T13:29:35.120+08:00表示，北京时间2015年5月20日 13点29分35秒。
     */
    private String finish_time;

    /**
     * 分账明细单号
     * 微信分账明细单号，每笔分账业务执行的明细单号，可与资金账单对账使用
     */
    private String detail_id;
}
